perm filename BROWSE.LSP[QLA,LSP] blob
sn#736904 filedate 1983-12-28 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Benchmark to create and browse through an AI-like data base of units
C00008 ENDMK
Cā;
;;; Benchmark to create and browse through an AI-like data base of units
;;; n is # of symbols
;;; m is maximum amount of stuff on the plist
;;; npats is the number of basic patterns on the unit
;;; ipats is the instantiated copies of the patterns
(declare (fixsw t))
(defun init (n m npats ipats)
(let ((ipats (subst () () ipats)))
(do ((p ipats (cdr p)))
((null (cdr p)) (rplacd p ipats)))
(do ((n n (1- n))
(i m (cond ((= i 0) m)
(t (1- i))))
(name (intern (gensym)) (intern (gensym)))
(a ()))
((= n 0) a)
(push name a)
(do ((i i (1- i)))
((= i 0))
(putprop name() (gensym)))
(putprop
name
(do ((i npats (1- i))
(ipats ipats (cdr ipats))
(a ()))
((= i 0) a)
(push (car ipats) a))
'pattern)
(do ((j (- m i) (1- j)))
((= j 0))
(putprop name () (gensym))))))
(defmacro mod (x n) `(remainder ,x ,n))
(declare (special rand)(fixnum rand))
(setq rand 21.)
(defun seed () (setq rand 21.))
(defun random () (setq rand (mod (* rand 17.) 251.)))
(defun randomize (l)
(do ((a ()))
((null l) a)
(let ((n (mod (random) (length l))))
(cond ((= n 0)
(push (car l) a)
(setq l (cdr l)))
(t
(do ((n n (1- n))
(x l (cdr x)))
((= n 1)
(push (cadr x) a)
(rplacd x (cddr x)))))))))
(defun char1 (x) (getchar x 1))